package asruby.yarv
{
public class YARVInstructions
{
    public static var NOP:int = 0;
    public static var GETLOCAL:int = 1;
    public static var SETLOCAL:int = 2;
    public static var GETSPECIAL:int = 3;
    public static var SETSPECIAL:int = 4;
    public static var GETDYNAMIC:int = 5;
    public static var SETDYNAMIC:int = 6;
    public static var GETINSTANCEVARIABLE:int = 7;
    public static var SETINSTANCEVARIABLE:int = 8;
    public static var GETCLASSVARIABLE:int = 9;
    public static var SETCLASSVARIABLE:int = 10;
    public static var GETCONSTANT:int = 11;
    public static var SETCONSTANT:int = 12;
    public static var GETGLOBAL:int = 13;
    public static var SETGLOBAL:int = 14;
    public static var PUTNIL:int = 15;
    public static var PUTSELF:int = 16;
    public static var PUTUNDEF:int = 17;
    public static var PUTOBJECT:int = 18;
    public static var PUTSTRING:int = 19;
    public static var CONCATSTRINGS:int = 20;
    public static var TOSTRING:int = 21;
    public static var TOREGEXP:int = 22;
    public static var NEWARRAY:int = 23;
    public static var DUPARRAY:int = 24;
    public static var EXPANDARRAY:int = 25;
    public static var CONCATARRAY:int = 26;
    public static var SPLATARRAY:int = 27;
    public static var CHECKINCLUDEARRAY:int = 28;
    public static var NEWHASH:int = 29;
    public static var NEWRANGE:int = 30;
    public static var PUTNOT:int = 31;
    public static var POP:int = 32;
    public static var DUP:int = 33;
    public static var DUPN:int = 34;
    public static var SWAP:int = 35;
    public static var REPUT:int = 36;
    public static var TOPN:int = 37;
    public static var SETN:int = 38;
    public static var EMPTSTACK:int = 39;
    public static var DEFINEMETHOD:int = 40;
    public static var ALIAS:int = 41;
    public static var UNDEF:int = 42;
    public static var DEFINED:int = 43;
    public static var POSTEXE:int = 44;
    public static var TRACE:int = 45;
    public static var DEFINECLASS:int = 46;
    public static var SEND:int = 47;
    public static var INVOKESUPER:int = 48;
    public static var INVOKEBLOCK:int = 49;
    public static var LEAVE:int = 50;
    public static var FINISH:int = 51;
    public static var THROW:int = 52;
    public static var JUMP:int = 53;
    public static var BRANCHIF:int = 54;
    public static var BRANCHUNLESS:int = 55;
    public static var GETINLINECACHE:int = 56;
    public static var ONCEINLINECACHE:int = 57;
    public static var SETINLINECACHE:int = 58;
    public static var OPT_CASE_DISPATCH:int = 59;
    public static var OPT_CHECKENV:int = 60;
    public static var OPT_PLUS:int = 61;
    public static var OPT_MINUS:int = 62;
    public static var OPT_MULT:int = 63;
    public static var OPT_DIV:int = 64;
    public static var OPT_MOD:int = 65;
    public static var OPT_EQ:int = 66;
    public static var OPT_LT:int = 67;
    public static var OPT_LE:int = 68;
    public static var OPT_LTLT:int = 69;
    public static var OPT_AREF:int = 70;
    public static var OPT_ASET:int = 71;
    public static var OPT_LENGTH:int = 72;
    public static var OPT_SUCC:int = 73;
    public static var OPT_REGEXPMATCH1:int = 74;
    public static var OPT_REGEXPMATCH2:int = 75;
    public static var OPT_CALL_NATIVE_COMPILED:int = 76;
    public static var BITBLT:int = 77;
    public static var ANSWER:int = 78;
    public static var GETLOCAL_OP_2:int = 79;
    public static var GETLOCAL_OP_3:int = 80;
    public static var GETLOCAL_OP_4:int = 81;
    public static var SETLOCAL_OP_2:int = 82;
    public static var SETLOCAL_OP_3:int = 83;
    public static var SETLOCAL_OP_4:int = 84;
    public static var GETDYNAMIC_OP__WC__0:int = 85;
    public static var GETDYNAMIC_OP_1_0:int = 86;
    public static var GETDYNAMIC_OP_2_0:int = 87;
    public static var GETDYNAMIC_OP_3_0:int = 88;
    public static var GETDYNAMIC_OP_4_0:int = 89;
    public static var SETDYNAMIC_OP__WC__0:int = 90;
    public static var SETDYNAMIC_OP_1_0:int = 91;
    public static var SETDYNAMIC_OP_2_0:int = 92;
    public static var SETDYNAMIC_OP_3_0:int = 93;
    public static var SETDYNAMIC_OP_4_0:int = 94;
    public static var PUTOBJECT_OP_INT2FIX_0_0_C_:int = 95;
    public static var PUTOBJECT_OP_INT2FIX_0_1_C_:int = 96;
    public static var PUTOBJECT_OP_QTRUE:int = 97;
    public static var PUTOBJECT_OP_QFALSE:int = 98;
    public static var SEND_OP__WC___WC__QFALSE_0__WC_:int = 99;
    public static var SEND_OP__WC__0_QFALSE_0__WC_:int = 100;
    public static var SEND_OP__WC__1_QFALSE_0__WC_:int = 101;
    public static var SEND_OP__WC__2_QFALSE_0__WC_:int = 102;
    public static var SEND_OP__WC__3_QFALSE_0__WC_:int = 103;
    public static var SEND_OP__WC___WC__QFALSE_0X04__WC_:int = 104;
    public static var SEND_OP__WC__0_QFALSE_0X04__WC_:int = 105;
    public static var SEND_OP__WC__1_QFALSE_0X04__WC_:int = 106;
    public static var SEND_OP__WC__2_QFALSE_0X04__WC_:int = 107;
    public static var SEND_OP__WC__3_QFALSE_0X04__WC_:int = 108;
    public static var SEND_OP__WC__0_QFALSE_0X0C__WC_:int = 109;
    public static var UNIFIED_PUTOBJECT_PUTOBJECT:int = 110;
    public static var UNIFIED_PUTOBJECT_PUTSTRING:int = 111;
    public static var UNIFIED_PUTOBJECT_SETLOCAL:int = 112;
    public static var UNIFIED_PUTOBJECT_SETDYNAMIC:int = 113;
    public static var UNIFIED_PUTSTRING_PUTSTRING:int = 114;
    public static var UNIFIED_PUTSTRING_PUTOBJECT:int = 115;
    public static var UNIFIED_PUTSTRING_SETLOCAL:int = 116;
    public static var UNIFIED_PUTSTRING_SETDYNAMIC:int = 117;
    public static var UNIFIED_DUP_SETLOCAL:int = 118;
    public static var UNIFIED_GETLOCAL_GETLOCAL:int = 119;
    public static var UNIFIED_GETLOCAL_PUTOBJECT:int = 120;

	public static var INDEX_TO_NAME:Array = [
                      "nop", 
                      "getlocal", 
                      "setlocal", 
                      "getspecial", 
                      "setspecial", 
                      "getdynamic", 
                      "setdynamic", 
                      "getinstancevariable", 
                      "setinstancevariable", 
                      "getclassvariable", 
                      "setclassvariable", 
                      "getconstant", 
                      "setconstant", 
                      "getglobal", 
                      "setglobal", 
                      "putnil", 
                      "putself", 
                      "putundef", 
                      "putobject", 
                      "putstring", 
                      "concatstrings", 
                      "tostring", 
                      "toregexp", 
                      "newarray", 
                      "duparray", 
                      "expandarray", 
                      "concatarray", 
                      "splatarray", 
                      "checkincludearray", 
                      "newhash", 
                      "newrange", 
                      "putnot", 
                      "pop", 
                      "dup", 
                      "dupn", 
                      "swap", 
                      "reput", 
                      "topn", 
                      "setn", 
                      "emptstack", 
                      "definemethod", 
                      "alias", 
                      "undef", 
                      "defined", 
                      "postexe", 
                      "trace", 
                      "defineclass", 
                      "send", 
                      "invokesuper", 
                      "invokeblock", 
                      "leave", 
                      "finish", 
                      "throw", 
                      "jump", 
                      "branchif", 
                      "branchunless", 
                      "getinlinecache", 
                      "onceinlinecache", 
                      "setinlinecache", 
                      "opt_case_dispatch", 
                      "opt_checkenv", 
                      "opt_plus", 
                      "opt_minus", 
                      "opt_mult", 
                      "opt_div", 
                      "opt_mod", 
                      "opt_eq", 
                      "opt_lt", 
                      "opt_le", 
                      "opt_ltlt", 
                      "opt_aref", 
                      "opt_aset", 
                      "opt_length", 
                      "opt_succ", 
                      "opt_regexpmatch1", 
                      "opt_regexpmatch2", 
                      "opt_call_native_compiled", 
                      "bitblt", 
                      "answer", 
                      "getlocal_op_2", 
                      "getlocal_op_3", 
                      "getlocal_op_4", 
                      "setlocal_op_2", 
                      "setlocal_op_3", 
                      "setlocal_op_4", 
                      "getdynamic_op__wc__0", 
                      "getdynamic_op_1_0", 
                      "getdynamic_op_2_0", 
                      "getdynamic_op_3_0", 
                      "getdynamic_op_4_0", 
                      "setdynamic_op__wc__0", 
                      "setdynamic_op_1_0", 
                      "setdynamic_op_2_0", 
                      "setdynamic_op_3_0", 
                      "setdynamic_op_4_0", 
                      "putobject_op_int2fix_0_0_c_", 
                      "putobject_op_int2fix_0_1_c_", 
                      "putobject_op_qtrue", 
                      "putobject_op_qfalse", 
                      "send_op__wc___wc__qfalse_0__wc_", 
                      "send_op__wc__0_qfalse_0__wc_", 
                      "send_op__wc__1_qfalse_0__wc_", 
                      "send_op__wc__2_qfalse_0__wc_", 
                      "send_op__wc__3_qfalse_0__wc_", 
                      "send_op__wc___wc__qfalse_0x04__wc_", 
                      "send_op__wc__0_qfalse_0x04__wc_", 
                      "send_op__wc__1_qfalse_0x04__wc_", 
                      "send_op__wc__2_qfalse_0x04__wc_", 
                      "send_op__wc__3_qfalse_0x04__wc_", 
                      "send_op__wc__0_qfalse_0x0c__wc_", 
                      "unified_putobject_putobject", 
                      "unified_putobject_putstring", 
                      "unified_putobject_setlocal", 
                      "unified_putobject_setdynamic", 
                      "unified_putstring_putstring", 
                      "unified_putstring_putobject", 
                      "unified_putstring_setlocal", 
                      "unified_putstring_setdynamic", 
                      "unified_dup_setlocal", 
                      "unified_getlocal_getlocal", 
                      "unified_getlocal_putobject"];

    public static function name(index:int):String {
        return INDEX_TO_NAME[index];
    }

    public static var ARGS_SPLAT_FLAG:int = 2;
    public static var ARGS_BLOCKARG_FLAG:int = 4;
    public static var FCALL_FLAG:int = 8;
    public static var VCALL_FLAG:int = 16;
    public static var TAILCALL_FLAG:int = 32;
    public static var TAILRECURSION_FLAG:int = 64;
    public static var SUPER:int = 128;
}

}
